سال پنجم شمارههاي 15 و 16 بهار و تابستان 1392 صص: -49 58 فصلنامه علمی- پژوهشی فناوري اطلاعات و ارتباطات ایران الگوریتمهاي ابتکاري براي شبه مثلثبندي مجموعه نقاط تصادفی در صفحه فهیمه منا نقده علی ** نوراله 1* فروشها * طاهرخانی * کارشناسی ارشد دانشکده مهندسی کامپیوتر دانشگاه آزاد اسلامی تاکستان ** استادیار دانشکده مهندسی برق و کامپیوتر دانشگاه آزاد اسلامی قزوین.1 چکیده تاریخ دریافت: 1392/03/31 یافتن الگوریتمهایی براي مساي ل متنوع مطرح شده در هندسه محاسباتی از جمله مسي له شبه مثلثبندي مجموعه نقاط در صفحه جزو موضوعات علمی است که تاکنون زمینه فکري دانشمندان علم کامپیوتر را به خود اختصاص داده است. شبه مثلثبندي S که مجموعهاي از n نقطه در صفحه است افراز پوستهي محدب این مجموعه نقاط از طریق اتصال چندین یال به تعدادي شبهمثلث میباشد که همه نقاط را در بر میگیرد. براي شبه مثلثبندي معیارهاي بهینگی گوناگونی بررسی شده است که اغلب براساس وزن یالها و گوشهها بوده که در آن شبه مثلث- بندي مجموعه نقاط با کمترین وزن یالها جزو مساي ل باز میباشد. به- طور کلی شبه مثلثبندي کمینه به شبه مثلثبندي اطلاق میشود که تعداد شبهمثلثهاي ایجاد شده در آن دقیقا 2-n شبه-مثلث و تعداد کمترین یالهاي مورد نیاز در آن 3-2n یال باشد همچنین تمامی ري وس یک شبه مثلثبندي کمینه نوكدار میباشند به این معنی که در بین تمام زوایاي وابسته به آن ري وس یک زاویهي بزرگتر از π وجود داشته باشد. هدف این مقاله اراي ه روشهایی جدید براي شبه مثلثبندي مجموعه نقاط S در صفحه است تا بتواند تفکرات الگوریتمی جدیدي را در این زمینه باز کند. این مقاله نشان میدهد که ایجاد لایههایی از پوسته محدب براي مجموعه نقاط و شبه مثلثبندي آنها با دو الگوریتم خاص منجر به تولید شبه مثلثبندي کمینه خواهد شد. همچنین الگوریتمی جدید براي ایجاد یک چندضلعی ساده حلزونی شبه مثلثبندي شده اراي ه می- دهد که تولید چندضلعیهاي ساده تصادفی در دو زمینه مهم کاربردي تاریخ پذیرش: 1392/06/20 شامل بررسی عملکرد الگوریتمها و ارزیابی زمان پردازنده مورد نیاز الگوریتمها حاي ز اهمیت میباشد. کلید واژگان: شبه مثلثبندي پوسته محدب زنجیره محدب و مقعر قابلیت رویت چندضلعی ساده. مقدمه عناوین شبهمثلث و شبهمثلثبندي در سال 1993 توسط Pocchiola و Vegter مطرح شدهاند. در اوایل سال 1990 شبهمثلثبندي چندضلعیها در هندسه محاسباتی تحت نام مثلثبنديهاي ژي ودزیک بیان شده است[ 1 ]. مسیر ژي ودزیک کوتاهترین مسیر بین دو نقطه در یک چندضلعی بوده که هیچ یک از اضلاع چندضلعی را قطع نمیکند. یک شبهمثلث یک چندضلعی ساده در صفحه دقیقا با سه رأس محدب می- باشد که آنها را گوشه مینامند و سه زنجیره مقعر از یالها گوشهها را به هم متصل میکند. فرض کنید مجموعهاي از نقطه در صفحه است شبهمثلثبندي یک تقسیمبندي از پوستهي محدب به شبه- مثلثهایی است که مجموعه ري وس آن باشد[ 2 ]. در سال 2000 Streinu [3] نشان داده که بین استحکام گرافها و شبهمثلثبنديهاي کمینه ارتباط قوي وجود دارد علاوه بر این او ثابت کرد که تعداد کمینه یاله يا مورد نیاز در یک شبهمثلثبندي نوك- دار 3 2 یال است. همچنین با استفاده از تي وري چند وجهی اویلر تعداد شبهمثلثها در یک شبهمثلثبندي کمینه نوكدار 2 است که به هیچ ساختاري از مجموعه نقاط بجز تعداد آن بستگی ندارد[ 4 ]. در یک شبه مثلثبندي رأسی که در بین تمام زوایاي آن یک زاویه بزرگتر 1 نویسنده عهدهدار مکاتبات m.naghdeforoshha@tiau.ac.ir)
فهیمه طاهرخانی منا نقده فروشها و... فصلنامه فناوري اطلاعات و ارتباطات ایران سال پنجم شمارههاي 15 و 16 بهار و تابستان 1392.2 از وجود داشته باشد نوكدار نامیده میشود. تمامی ري وس یک شبه مثلثبندي کمینه نوكدار میباشند [5-6]. شبهمثلثبنديها به طور قابل ملاحظهاي در هندسه محاسباتی مورد توجه قرار گرفتهاند که عمدتا ناشی از کاربردشان در تي وري استحکام برنامهریزي حرکت بازوي روباتها مجموعههاي قابل رویت شعاع پرتاب ردیابی تصادم جنبشی و نگهبانی کردن از چندضلعیها می- باشد[ 7-10 ]. با توجه به اینکه برخی از خواص ترکیبی و هندسی جالب شبهمثلثبنديها اخیرا کشف شده اما هنوز بسیاري از پرسشهاي اصلی باز در مورد آنها باقی مانده است [2]. در این مقاله به مسي لهي شبهمثلثبندي مجموعه با نقطه تصادفی در صفحه با استفاده از پوستههاي محدب لایهاي پرداخته و در آن دو روش جدید شبهمثلثبندي مطرح میشود که منجر به تولید شبه- مثلثبندي کمینه خواهد شد. همچنین الگوریتمی جدید براي ایجاد یک چندضلعی ساده حلزونی اراي ه شده است که به طور همزمان نیز شبه- مثلثبندي روي آن انجام میشود. بطورکلی تولید چندضلعیهاي ساده تصادفی در دو زمینهي مهم کاربردي حاي ز اهمیت است: بررسی عملکرد الگوریتمها مثلثبندي مجموعه نقاط تصادفی در صفحه مطرح میشوند. در بخش 5 تحلیل الگوریتمهاي پیشنهادي و نهایتا در بخش 6 نتیجهگیري اراي ه خواهد شد. تعاریف اولیه چندضلعی ساده یک سطح محدود شده به وسیله یک مجموعه محدود از پارهخطهایی است که یک خم سادهي بسته را تشکیل می- دهند. به عبارتی یک چندضلعی ساده روي مجموعه ري وس تصادفی چندضلعی است که در آن یالها جز در ري وس همدیگر را قطع نمیکنند. به چندضلعی سادهاي که تمام زوایاي داخلی بین ري وس آن چندضلعی از کمتر باشد چندضلعی محدب میگویند. بنا بر تعریف مجموعه از نقاط در صفحه محدب نامیده میشود اگر و فقط اگر به ازاي هر دو نقطه پاره خط واصل کاملا درون واقع شود ) ). پس میتوان نتیجه گرفت که یک چندضلعی با هر نوع فرورفتگی نمیتواند محدب باشد. پرکاربردترین ساختار در هندسه رباتیک پوسته محدب میباشد. پوسته محدب مجموعه نقاط در صفحه ) کوچکترین چندضلعی محدب است که را محصور میکند شکل 2- ب). اگر تعداد لایههاي پوسته محدب مجموعه نقاط باشد هر لایه با معرفی میشود 1 > 1). در یک مجموعه از نقاط نقاطی از پوسته محدب که در آنها زاویه داخلی اکیدا کوچکتر از باشد را نقاط رأسی مینامند. سه نقطه ) ) و ) مفروض هستند. ماتریس اینگونه تعریف میشود: = 1 1 1 دترمینان ماتریس 1) در صورتی که > 0 ) نقطه رابطه پادساعتگردي باشد بین سه وجود دارد و اگر < 0 ) باشد بین این سه نقطه رابطه ساعتگردي وجود دارد و = 0 ) به این معنی است که سه نقطه در یک خط واقع شدهاند. دو نقطه در یک چندضلعی نسبت به هم قابل رویت هستند اگر پارهخط واصل بین آنها با هیچ پارهخط دیگري از همان مجموعه متقاطع نباشد در حالت خاص دو پوسته محدب و را در نظر بگیرید بطوریکه درون باشد. فرض کنید و دو نقطه رأسی به ترتیب در و باشند این دو نقطه را نسبت به هم قابل رویت ارزیابی زمان پردازنده مورد نیاز الگوریتمها. تولید اشیاء هندسی تصادفی مورد توجه خاص محققان قرار گرفته است. به عنوان مثال Epstein تولید مثلثبندي تصادفی یکنواخت را مورد مطالعه قرار داده است[ 11 ]. مجموعه شامل نقطه تصادفی در صفحه مفروض است. هدف ایجاد یک چندضلعی سادهي تصادفی با توزیع یکنواخت است اگر چندضلعی ساده روي وجود داشته باشد احتمال تولید همه این چندضلعیها با یکدیگر یکسان بوده و برابر است) [11-12] به گونهاي که مجموعه ري وس چندضلعی ایجاد شده شامل همه مجموعه نقاط باشد که به طور همزمان نیز شبهمثلثبندي میشود. دو روش جدید دیگري از شبهمثلثبندي را نیز اراي ه میدهیم که نسبت به سه روش دیگر ویژگی خاصی نداشته و فقط به عنوان الگوریتمی جدید براي شبهمثلثبندي مجموعه نقاط تصادفی در صفحه مطرح شدهاند. ادامه مقاله به این شکل سازماندهی شده است که در بخش 2 تعاریف اولیه اراي ه میگردد. در بخش 3 نحوهي ایجاد پوستههاي محدب لایهاي بیان میشود. در بخش 4 الگوریتمهاي پیشنهادي جهت شبه- ٥٠
فلا ب الگوریتمهاي ابتکاري براي شبه مثلثبندي مجموعه نقاط تصادفی در صفحه میگوییم هرگاه پارهخط واصل بین آنها با هیچ پارهخط دیگري از همان مجموعه متقاطع نباشد). فرض کنید ري وس یک چندضلعی ساده میباشند که این ري وس در خلاف جهت حرکت عقربههاي ساعت قرار گرفتهاند شکل ري وس به رأس 1). ) )δ را کوتاهترین مسیر بین دو رأس مینامیم. مسیر این صورت مسیر از و ) )δ را زنجیره محدب گویند اگر از رأس روي مسیر آن حرکت کنیم مسیر راستگرد باشد در غیر ) )δ را زنجیره مقعر مینامند. بالاي پشته قرار گیرد. سپس دو رأس سر پشته به همراه رأس بعدي رأس واقع شده بر روي مرز چندضلعی ستارهاي شکل) بررسی شده و پادساعتگردي یا ساعتگردي این سه رأس متوالی تعیین میشود. اگر زاویه پادساعتگرد بود رأس مورد نظر را در پشته درج میکند در غیر این صورت عنصر سر پشته حذف میشود و به همین ترتیب الگوریتم تکرار میگردد. در نهایت تمام ري وسی که در پشته قرار دارند همان ري وس واقع شده بر روي پوسته محدب میباشند شکل 2 ب- ). شکل 1- زنجیرهي محدب و مقعر.4.3 ایجاد پوستههاي محدب لایهاي در این بخش به بررسی الگوریتم ایجاد پوسته محدب خواهیم پرداخت. جهت ایجاد پوسته محدب مختصات ري وس و ترتیب اتصال آنها به یکدیگر مورد نیاز است. براي ایجاد پوسته محدب الگوریتمهاي متفاوتی وجود دارد که در این مقاله از الگوریتم گراهام نسخه استفاده شده است. جهت محاسبه پوسته محدب ابتدا باید نقاط کرانی را پیدا کرد که در این الگوریتم پایینترین نقطه سمت راست یک نقطه کرانی می- باشد. مجموعه با نقطه در صفحه مفروض است. بر اساس الگوریتم اسکن گراهام نسخه مراحل زیر طی میشود: مرحله اول: پایینترین نقطه سمت راست را پیدا کرده و این نقطه را مینامیم. مرحله دوم: مابقی نقاط بر اساس زاویه حول نقطه مرتب می- شوند. در صورتی که دو نقطه زاویه یکسانی با داشته باشند یعنی در یک راستا باشند نقطهاي در نظر گرفته میشود که فاصله بیشتري با نقطه دارد. سپس این نقاط را از نامگذاري کرده و با اتصال این نقاط به یکدیگر یک چندضلعی ستارهاي شکل ایجاد خواهد شد شکل 2- الف). مرحله سوم: پایینترین نقطه رأس شکل 2- الف- چندضلعی ستارهاي شکل. ب- پوسته محدب اکنون نقاط روي این پوسته محدب را از مجموعه نقاط خارج می- کنیم و براي نقاط باقی مانده با انجام مراحل قبل مجددا پوسته محدب ایجاد میشود و این کار تا زمانی ادامه پیدا میکند که به کمتر از سه نقطه برسد به این معنی که یا یک نقطه و یا دو نقطه باقی مانده باشد. بدین ترتیب پوستههاي محدب لایهاي ایجاد میشوند. الگوریتمهاي پیشنهادي شبهمثلثبندي مجموعه نقاط تصادفی در صفحه فرض کنید تعداد لایههاي محدب ایجاد شده در بخش قبلی باشد ام در لایه یعنی لایهي ام میباشد. ام که = 1 رأس است و و نقطه بعد از آن رأس که کمترین زاویه را نسبت به دارد قطعا بر روي پوسته محدب واقع شدهاند پس این دو رأس در پشته درج میشوند بطوریکه در ٥١
ب فهیمه طاهرخانی منا نقده فروشها و... فصلنامه فناوري اطلاعات و ارتباطات ایران سال پنجم شمارههاي 15 و 16 بهار و تابستان 1392 4.1. الگوریتم پیشنهادي بیشترین نقاط قابل رویت در این الگوریتم هر رأس رأسی است که بیشترین نقاط قابل رویت از لایهي را دارا باشد. هر رأس تعدادي از ري وس لایهي را رویت میکند. براساس این الگوریتم رأسی که بیشترین نقاط قابل رویت از لایهي را داشته باشد به عنوان یک گوشه از شبهمثلث انتخاب شده و دو رأس قابل رویتی که کمترین و بیشترین زاویه قطبی را نسبت به این رأس دارند را به عنوان دو گوشه دیگر شبه- مثلث درنظر میگیریم و یالهاي مربوطه به عنوان دو ضلع شبهمثلث از رأس به دو رأس مورد نظر رسم میشوند. زنجیرهي مقعري که بر روي لایهي محدب این دو رأس قابل رویت را به یکدیگر وصل میکند به عنوان ضلع سوم شبهمثلث محسوب میشود. این الگوریتم را براي دیگر ري وس باقیمانده از لایهي تکرار میکنیم با این شرط که نقاط بین دو گوشهي انتهایی ضلع مقعر شبهمثلث بدست آمده در مرحله قبل به عنوان نقاط قابل رویت مرحله بعد درنظر گرفته نشوند. همانطورر که در شکل 3- الف) مشاهده میشود ري وسی که بیش از دو رأس قابل رویت دارند ري وس قابل رویت بین دو رأسی که کمترین و بیشترین زاویه قطبی را داشته) با استفاده از خطچین نمایان شدهاند. از بین تمامی ري وس لایهي رأس بیشترین نقاط قابل رویت را دارد چهار نقطه قابل رویت) بنابراین در این مرحله دو رأس قابل رویت که کمترین و بیشترین زاویه قطبی را دارند ثابت شده شکل 3 ب- و مجددا الگوریتم براي دیگر ري وس تکرار میشود. در نهایت خروجی الگوریتم مطابق با شکل 4) خواهد بود. با اعمال این الگوریتم بر روي تمامی لایهها شبه- مثلثبندي مجموعه نقاط داده شده در صفحه ایجاد میشود. فلا رویتی که کمترین و بیشترین زاویه قطبی را نسبت به این رأس دارند را به عنوان دو گوشه دیگر شبهمثلث درنظر میگیریم و یالهاي مربوطه به عنوان دو ضلع شبهمثلث از رأس به دو رأس مورد نظر رسم می- شوند. شکل 3- الف- تعیین نقاط قابل رویت براي هر رأس از لایه در مرحله اول ب- ثابت شدن دو رأس قابل رویت و تعیین مجدد نقاط قابل رویت دیگر ري وس از لایه 4.2. الگوریتم پیشنهادي کوتاهترین طول براساس این الگوریتم براي تمامی ري وس از لایهي بطور جداگانه ري وس قابل رویتشان از لایهي تعیین میشود. سپس دو رأس قابل رویتی که کمترین و بیشترین زاویه قطبی را نسبت به ري وس ري وس دارند درنظر گرفته شده و مجموع فاصله اقلیدوسی بین تکتک از بین تمامی ري وس و دو رأس قابل رویتشان محاسبه میشود شکل 5 فلا- ). از لایهي رأسی که کوتاهترین طول را داشته باشد به عنوان گوشهاي از شبهمثلث انتخاب شده و دو رأس قابل شکل 4- خروجی نهایی الگوریتم بیشترین نقاط قابل رویت براساس شکل 5 فلا- مجموع فاصله اقلیدوسی دو دورترین رأس قابل رویت نسبت به رأس از لایهي کمترین مقدار را داشته بنابراین در این مرحله ري وس قابل رویت رأس ثابت شده مطابق با ٥٢
ب- فلا ب ب- الگوریتمهاي ابتکاري براي شبه مثلثبندي مجموعه نقاط تصادفی در صفحه شکل 5 و مجددا الگوریتم براي دیگر ري وس تکرار میشود. در نهایت خروجی الگوریتم مطابق با شکل 6) خواهد بود: در مرحله قبل به عنوان نقاط قابل رویت مرحله بعد درنظر گرفته نشوند. با اعمال این الگوریتم بر روي تمامی لایهها شبهمثلثبندي مجموعه نقاط داده شده در صفحه ایجاد میشود. با توجه به اینکه این الگوریتم براساس کوتاهترین طول عمل میکند جزو الگوریتمهاي شبهمثلثبندي مجموعه نقاط با کمترین هزینه درنظر گرفته میشود. 4.3. الگوریتمهاي پیشنهادي شبهمثلثبندي کمینه نوكدار براي انجام الگوریتم ابتدا از بین تمام ري وس قابل رویت هر رأس دو رأس قابل رویتی که کمترین و بیشترین زاویه قطبی را نسبت به این رأس دارند به عنوان دو دورترین رأس قابل رویت منظور میگردند. بدین ترتیب براي تمامی ري وس لایه نسبت به لایه دو رأس قابل رویت وجود خواهد داشت. به عنوان مثال همانطوهمانطور شکل 7 فلا- نشان داده شده است رأس از لایه محدب چهار رأس و را از لایه محدب رویت میکند که و به عنوان دو دورترین رأس قابل رویت انتخاب میشوند شکل 7. شکل 5- الف- تعیین نقاط قابل رویت براي هر رأس از لایه اساس فاصله اقلیدوسی ب- ثابت شدن دو رأس قابل رویت نقاط قابل رویت دیگر ري وس از لایه در مرحله اول بر و تعیین مجدد اف)ل شکل 6- خروجی نهایی الگوریتم کوتاهترین طول در این الگوریتم نیز همانند الگوریتم قبلی زنجیرهي مقعري که بر روي لایهي محدب این دو رأس قابل رویت را به یکدیگر وصل میکند به عنوان ضلع سوم شبهمثلث محسوب میشود. این الگوریتم را مجددا براي دیگر ري وس باقیمانده از لایهي تکرار میکنیم با این شرط که نقاط بین دو گوشهي انتهایی ضلع مقعر شبهمثلث بدست آمده ب) شکل 7- الف- ري وس قابل رویت رأس از لایه قابل رویت رأس. ب- دو دورترین رأس همانطور که بیان شد تمامی ري وس در پوستههاي محدب لایهاي نسبت به لایه بعدي خود دو دورترین رأس قابل رویت دارند. در این بخش براي ایجاد شبهمثلثبندي باید یکی از این دو رأس انتخاب شوند ٥٣
فلا ب ب- فهیمه طاهرخانی منا نقده فروشها و... فصلنامه فناوري اطلاعات و ارتباطات ایران سال پنجم شمارههاي 15 و 16 بهار و تابستان 1392 که در ادامه دو روش جدید براي انتخاب یکی از دو رأس قابل رویت جهت شبهمثلثبندي مطرح میشود. 4.3.1. الگوریتم انتخاب ري وس قابل رویت ساعتگرد در روش انتخاب ري وس قابل رویت ساعتگرد از بین دو دورترین رأس قابل رویت تعیین شده رأسی انتخاب میشود که بین رأس مورد نظر از لایه و دو رأس قابل رویت آن رابطه ساعتگردي برقرار باشد. بنابراین رأس مورد نظر در لایه ام را قابل رویت را در نظر گرفته و دو رأس اندیس نزدیکترین رأس قابل رویت) و اندیس دورترین رأس قابل رویت) مینامیم. چرخش از رأس مورد نظر به دو رأس قابل رویت را بررسی کرده اگر ) ساعت- گرد باشد پارهخط بین و ) ساعتگرد باشد پارهخط بین متصل میشود در صورتی که متصل و میشود. با اتصال این خطوط در هر لایه ري وس قابل رویت ساعتگرد تولید میشوند شکل 8 فلا- رأس مورد نظر از لایه و دو رأس قابل رویت آن رابطه پادساعت- گردي برقرار باشد. بدین ترتیب که رأس مورد نظر در لایه ام را درنظر گرفته و دو رأس قابل رویت را و مینامیم. چرخش از رأس مورد نظر به دو رأس قابل رویت را بررسی کرده اگر ) پادساعتگرد باشد پارهخط بین و متصل میشود در صورتی که ) پادساعتگرد باشد. پارهخط بین و متصل میشود. با اتصال این خطوط در هر لایه ري وس قابل رویت پادساعتگرد تولید میشوند شکل 8 ). چنانچه یکی از دو روش مطرح شده و یا ترکیبی از دو روش بطوریکه براي هر یک از لایهها تنها یکی از دو روش استفاده شود) را بر روي پوستههاي محدب لایهاي اعمال کنیم لایههاي محدب مطابق شکل 9 شبهمثلثبندي میشوند. شکل 9- خروجی الگوریتم به روش پادساعتگرد 4.4. الگوریتم ایجاد چندضلعی ساده حلزونی شبهمثلثبندي شده شکل 8- الف- انتخاب رأس قابل رویت ساعتگرد براي رأس رأس قابل رویت پادساعتگرد براي رأس - انتخاب ب. 4.3.2. الگوریتم انتخاب ري وس قابل رویت پادساعتگرد در روش انتخاب ري وس قابل رویت پادساعتگرد از بین دو دورترین رأس قابل رویت تعیین شده رأسی انتخاب میشود که بین الگوریتم پیشنهادي شامل دو مرحله است که با اعمال این دو مرحله بر روي لایههاي محدب با ایجاد شبهمثلثهاي پیدرپی در نهایت چندضلعی حلزونی شکل شبهمثلثبندي شده حاصل میشود. مرحله اول الگوریتم: گام اول- 1 را در نظر گرفته و روي ) بیرونیترین لایهي محدب) یک نقطه را به عنوان نقطه شروع انتخاب نموده و آن را مینامیم. گام دوم- در جهت پادساعتگرد دو نقطه دیگر را به ترتیب انتخاب نامگذاري مینماییم. این سه نقطه را به عنوان و و آنها را را و پارهخطهاي ري وس شبهمثلث درنظر گرفته و ایجاد میکنیم. ٥٤
ب- فلا ب ب- ب- فلا ب الگوریتمهاي ابتکاري براي شبه مثلثبندي مجموعه نقاط تصادفی در صفحه گام سوم- در این گام جهت ایجاد پارهخط واصل بین دو رأس و در صورت عدم وجود تقاطع با لایهي پارهخط مذکور رسم میشود شکل 10 فلا- ) در غیر اینصورت باید از رأس به رأس نقاطی از لایهي که با این دو رأس زنجیره مقعر می- سازند انتخاب و رسم شوند. در این مرحله از الگوریتم یک شبهمثلث ایجاد شده است شکل 10 ). شکل 10- الف- عدم تقاطع با لایه ٥٥ و فلا-. ب- تقاطع با لایه گام چهارم- براي ایجاد شبهمثلث بعدي باید موقعیت مکانی ري وس با درنظر گرفتن شرایط زیر تغییر یابند: الف) موقعیت مکانی نقطه در صورت تقاطع پارهخط با لایهي تغییر کرده و به نقطه مجاور رأس روي زنجیرهي مقعر تغییر مکان مییابد شکل ). 11 ب) رأس به موقعیت مکانی رأس فعلی منتقل شده و نقطه مجاور آن در جهت پادساعتگرد روي لایهي را رأس نامیده و پارهخط را ایجاد میکنیم شکل 11 -الف و ). 11 ب. شکل 11- الف- تغییر موقعیت مکانی ري وس مثلث در صورت وجود تقاطع با لایه - تغییر موقعیت مکانی ري وس مثلث در صورت عدم تقاطع با لایه مرحله دوم الگوریتم: در این مرحله از بین نقاط با ملاقات آخرین نقطه روي لایهي که در ایجاد زنجیره مقعر در مرحله اول باقیمانده روي لایهي الگوریتم استفاده نشدهاند دورترین نقطه قابل رویت نسبت به آخرین مینامیم و را پیدا کرده آن را یعنی رأس نقطه روي لایهي به پارهخط واصل بین آن دو را رسم میکنیم. همچنین از رأس حرکت کرده و به ترتیب پارهخطهاي نقطه قابل رویت روي لایهي وارد لایهي واصل بین نقاط موجود در این مسیر را رسم مینماییم. بعد از اتمام این دو مرحله با در نظر گرفتن + 1 بعدي شده و نقطه مجاور به دورترین نقطه قابل رویت در مرحلهي دوم از الگوریتم) در جهت ساعتگرد را به عنوان نقطه شروع این لایه درنظر میگیریم و از گام دوم مرحله اول الگوریتم را با نقاط باقیمانده بجز دورترین نقطه قابل رویت) در این لایه ادامه میدهیم و مراحل را تا < تکرار میکنیم شکل 12 فلا- ). بدین ترتیب با تکرار مراحل الگوریتم پیشنهادي تا < چندضلعی ساده حلزونی شبهمثلثبندي شده ایجاد میگردد شکل ). 12
فلا ب فهیمه طاهرخانی منا نقده فروشها و... فصلنامه فناوري اطلاعات و ارتباطات ایران سال پنجم شمارههاي 15 و 16 بهار و تابستان 1392 شکل 12- الف- ورود به لایه. ب- خروجی الگوریتم ایجاد چندضلعی ساده حلزونی شبهمثلثبندي شده قضیه 1. الگوریتم ابتکاري اراي ه شده دو برابر تعداد نقاط موجود بر روي بیرونیترین لایهي محدب چندضلعی ساده تصادفی تولید میکند. اثبات. از آنجایی که نقطه شروع الگوریتم هر یک از نقاط چندضلعی محدب بیرونیترین لایه میتواند باشد و جهت اجرا نیز ساعتگرد یا پادساعتگرد انتخاب گردد لذا دو برابر تعداد نقاط موجود بر روي بیرونیترین لایهي محدب چندضلعی ساده تصادفی تولید خواهد شد. شبه کد مربوط به الگوریتم ایجاد چندضلعی ساده حلزونی شبه- مثلثبندي شده به صورت زیر میباشد: اثبات درستی الگوریتم در گام اول الگوریتم چون تعداد لایههاي محدب براي هر مجموعه از نقاط 1 است 1 لذا وجود نقطه بدیهی است. لم 1. در گام سوم الگوریتم بر روي لایهي مثلث مفروض است اگر رأس از طریق رأس قابل رویت نباشد نقاطی جهت ایجاد زنجیره مقعر از لایهي وجود دارد. قابل رویت نباشد به این معنی است از رأس اثبات. اگر رأس واقع شده است. از بین این نقاط در که نقاطی از لایهي است را پیدا نقطهاي که داراي کمترین زاویه قطبی نسبت به رأس چپگرد است و لذا بر مینامیم. بدیهی است که کرده و آن را روي زنجیره مقعر قرار خواهد گرفت از این رو وجود زنجیره مقعر قابل اثبات خواهد بود. و وقوع اولین تقاطع با لایهي با شروع الگوریتم بر روي لایهي و ایجاد زنجیره مقعر اولین نقطه در جهت پادساعتگرد را و آخرین نقطه را با ملاقات آخرین نقطه روي لایهي در مرحله دوم الگوریتم) مینامیم. اگر از طریق لایهي به متصل باشد به این معنی است که نقاط لایهي به پایان رسیدهاند تمامی نقاط در ایجاد زنجیره مقعر استفاده شدهاند) و لذا الگوریتم را باید از لایهي ادامه دهیم در غیر اینصورت از بین نقاط باقیمانده بر روي لایهي نقطه با کمترین زاویه قطبی نسبت به آخرین نقطه بر روي لایهي را پیدا کرده و آن را v مینامیم. بدیهی است که v از این نقطه آخرین نقطه بر روي لایهي قابل رویت میباشد. ٥٦
الگوریتمهاي ابتکاري براي شبه مثلثبندي مجموعه نقاط تصادفی در صفحه تحلیل الگوریتمهاي پیشنهادي شبهمثلثبندي مجموعه نقاط ایجاد گراف قابل دید داراي مرتبه زمانی ) بوده[ 13 ] و مرتبه زمانی ایجاد پوستههاي محدب لایهاي ) میباشد[ 14 ]. در بخش 4 با اجراي هر کدام از الگوریتمهاي پیشنهادي جهت ایجاد پارهخط واصل بین دو نقطه موضوع قابل رویت بودن دو نقطه باید بررسی شود که با ایجاد گراف قابل دید مرتبه زمانی آن ) است. با توجه به مسطح بودن گراف شبهمثلثبندي براي ایجاد کل شبه- مثلثها حداکثر ) زمان صرف میشود لذا در مجموع مرتبه زمانی این الگوریتمها ) میباشد. نتیجهگیري.5.6 در این مقاله روشه يا جدیدي جهت شبهمثلثبندي مجموعه نقاط در صفحه مطرح شد. روند کار به گونهاي بود که ابتدا براي مجموعه نقاط در صفحه پوستههاي محدب لایهاي ایجاد شده و سپس با اعمال یکی از روشها و یا در مواردي ترکیبی از آن آنها بر روي لایهها شبه- مثلثبندي انجام گردید. بررسیها نشان داد که دو روش از شبهمثلث- بندیهاي انجام شده کمینه بوده به این معنی که تعداد شبه مثلثهاي تولید شده 2 شبه مثلث و تعداد یاله يا مورد نیاز در آن کمترین مقدار ممکن یعنی 3 2 میباشد. همچنین در این مقاله الگوریتمی جدید براي ایجاد یک چندضلعی ساده حلزونی شکل شبهمثلثبندي شده از مجموعه نقاط تصادفی در صفحه اراي ه شد. که با استفاده از این الگوریتم پیشنهادي به ترتیب از بیرونیترین لایه محدب تا درونی- ترین لایه با ایجاد شبهمثلثهاي پیدرپی چندضلعی حلزونی شبهمثلث- بندي شده ایجاد گردید. ایجاد چندضلعیهاي ساده از روي مجموعه نقاط تصادفی داراي کاربردهایی نظیر بررسی الگوریتمهاي ابتکاري در مساي لی چون موزه هنري میباشند و لذا الگوریتمهایی براي تولید چندضلعی بسیار در این کار مو ثرند. مراجع [1]. G. Rote F. Santos and I. Streinu Pseudo-Triangulation a Survey Contemporary Mathematics 453: 343-410 American Mathematical Society 2008. [2]. O. Aichholzer F. Aurenhammer H. Krasser and B. Speckmann Convexity minimizes pseudo-triangulations Computational Geometry 28 pp.3-10 2004. [3]. I. Streinu A combinatorial approach to planar non-colliding robot arm motion planning In : Proc. 41st Annu.IEEE Sympos. Foundat. Comput.Sci. FOCS'00) pp.443-453 2000. [4]. S. Gerdjikov and A. Wolff Decomposing a simple polygon into pseudo-triangles and convex polygons Computational Geometry 41 pp.21-30 2008. [5]. M. Ben-Ner A. Schulz and A. Sheffer On numbers of pseudo-triangulations arxiv: 1210. 7126v1 [cs.cg] 26 oct 2012. [6]. O. Aichholzer T. Hackl and B. Vogtenhuber Compatible pointed pseudo-triangulations 22 nd Canadian Conference on Computational Geometry 2010. [7]. M. Pocchiola and G. Vegter Topologically sweeping visibility complexes via pseudo-triangulations Discrete Compute.Geom. 16 pp.419-453 1996. [8]. M.T. Goodrich and R. Tamassia Dynamic ray shooting and shortest paths in planar subdivisions via balanced geodesic triangulations J. Algorithms 23 1) pp.51-73 1997. [9]. D.G. Kirkpatrick J. Snoeyink and B. Speckmann kinetic collision detection for simple polygons Internat. J. Comput. Geom. Appl. 121-2) pp. 3-27 2002. [10]. B. Speckmann and C.D. Tόth Allocating vertex π-guard in simple polygons via pseudo-triangulations Discrete Comput. Geom. 33 2) pp.345-364 2005. [11]. T. Aure and M. Held Heuristic for generation of random polygons 8 th Canadian Conference On Computational Geometry CCCG)Ottawa Canada pp.38-441996. [12]. D. Dailey and D. Whitfield Constructing random polygons SIGITE '08 USA pp.119-124 2008. [13]. M. D. Berg Computational Geometry: Algorithms and Applications 3 rd edition published by Springer-Verlag 2008. [14]. B. Chazelle On the convex layers of a planar Set IEEE Tran. Information Theory Vol. IT-31 No. 4 pp. 509-517 1985. ٥٧